package com.neusoft.yiyang.task.service;

import com.neusoft.yiyang.common.entity.medical.MedicationOrderRecord;
import com.neusoft.yiyang.common.entity.task.CareTask;
import com.neusoft.yiyang.common.enums.TaskStatus;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface TaskService {

    // 创建任务
    void createTask(CareTask careTask);

    // 根据任务ID获取任务信息
    CareTask getTaskById(Integer careTaskId);

    // 获取所有任务信息
    List<CareTask> getAllTasks();

    // 根据客户ID获取任务信息
    List<CareTask> getTasksByCustomerId(Integer customerId);

    // 根据护工ID获取任务信息
    List<CareTask> getTasksByCaretakerId(Integer caretakerId);

    // 更新任务信息
    void updateTask(CareTask careTask);

    // 删除任务
    void deleteTask(Integer careTaskId);

    // 处理客户信息变更通知
    void handleCustomerUpdateForNursingTasks(Integer customerId);

    // 生成护理任务
    void generateNursingTasksForCustomer(Integer customerId);

    // 更新护理任务状态
    void updateNursingTaskStatus(Integer taskId, TaskStatus status,
                                 Integer caretakerId, Integer quantity, String feedback,
                                 MultipartFile file);

    //利用客户Id查询对应的药品项目
    List<Map<String, Object>> getMedicationInfoByCustomerId(Integer customerId);

    //反馈，（修改careTask并添加medicationOrderRecord）
    void submitMedicationFeedback(Integer careTaskId, MedicationOrderRecord medicationOrderRecord);

    void deleteMedicationTask(Integer customerId, Integer medicationOrderId);
}